package com.linkstec.bookshop.mapper;

import java.util.List;

import com.linkstec.bookshop.pojo.Order;
import com.linkstec.bookshop.vo.ScartVo;

/**
 * 
 * @ClassName: OrderMapper 订单mapper
 * @Description:TODO
 * @author: JGQiang
 * @date: 2018年11月26日 下午8:50:14
 */
public interface OrderMapper {

	/**
	 * 
	 * @Description:TODO 初次添加订单信息
	 * @author: JGQiang
	 * @date: 2018年11月26日 下午8:50:34
	 * @param order
	 */
	void toOrder(Order order);

	/**
	 * 
	 * @Description:TODO 根据订单id 查询主订单
	 * @author: JGQiang
	 * @date: 2018年11月27日 上午9:25:52
	 * @param oId
	 * @return
	 */
	Order findOneOrder(int oId);

	/**
	 * 
	 * @Description:TODO 根据订单id查询子订单。
	 * @author: JGQiang
	 * @date: 2018年11月27日 上午9:25:58
	 * @param oId
	 * @return
	 */
	List<ScartVo> findOrderDetail(int oId);

	/**
	 * 
	 * @Description:TODO 支付订单
	 * @author: JGQiang
	 * @date:   2018年11月27日 上午10:17:08    
	 * @param order
	 */
	void payOrder(Order order);

	/**
	 * 
	 * @Description:TODO 查询当前user的订单数量
	 * @author: JGQiang
	 * @date:   2018年11月27日 上午11:55:35    
	 * @param userId
	 * @return
	 */
	int countOrderByUid(int userId);

	/**
	 * 
	 * @Description:TODO 查询当前user的订单信息
	 * @author: JGQiang
	 * @date:   2018年11月27日 上午11:57:59    
	 * @param userId
	 * @param beginPage
	 * @param limitPage
	 * @return
	 */
	List<Order> findOrderByUidAndPage(int userId, int beginPage, int limitPage);

	/**
	 * 
	 * @Description:TODO 更新订单状态
	 * @author: JGQiang
	 * @date:   2018年11月27日 下午3:11:31    
	 * @param oState
	 * @param oId
	 */
	void updateState(int oState, int oId);

	/**     
	 * @Description:TODO 同状态的订单数量
	 * @author: yanyuan
	 * @date:   2018年11月27日 下午4:45:21    
	 *  @param oState
	 *  @return    
	 */ 
	int countOrderByOstate(int oState);

	/**     
	 * @Description:TODO 同状态的订单信息
	 * @author: yanyuan
	 * @date:   2018年11月27日 下午4:46:13    
	 *  @param oState
	 *  @param beginPage
	 *  @param limitPage
	 *  @return    
	 */ 
	List<Order> findOrderByOStateAndPage(int oState, int beginPage, int limitPage);

}
